<?php
class UsuariosController extends AppController {

	var $name = 'Usuarios';

	function beforeFilter () {
		parent::beforeFilter();
		$this->Auth->allow('add', 'login', 'index', 'edit');
		//$this->Auth->allowedActions = array('*');
	}


	function index() {
		$this->Usuario->recursive = 0;
		$this->set('usuarios', $this->paginate());
	}

	function login () {
		$this->layout = 'login';
	}

	function logout () {
		 $this->redirect($this->Auth->logout());
	}

	function principal () {

	}

	function view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('usuario Inválida', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('usuario', $this->Usuario->read(null, $id));
	}

	function add() {
		if (array_key_exists('cancelar', $this->params['form'])) {
        	$this->Session->setFlash('Operación cancelada, ningún dato fue agregado.');
        	$this->redirect(array('action' => 'index'));
    	}
		if (!empty($this->data)) {
			$this->Usuario->create();
			if ($this->Usuario->save($this->data)) {

				$this->Session->setFlash('Datos agregados exitosamente.');
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash('Datos no agregados. Por favor, intente de nuevo.');
			}
		}
		//$personas = $this->Usuario->Persona->find('list', array('fields' => array('Persona.id', 'Persona.nombre')));
		$roles = $this->Usuario->Rol->find('list', array('fields' => array('Rol.id', 'Rol.nombre')));
		$this->set(compact('roles'));
	}

	function edit($id = null) {
		if (array_key_exists('cancelar', $this->params['form'])) {
        	$this->Session->setFlash('Operación cancelada, ningún dato fue editado.');
        	$this->redirect(array('action' => 'index'));
    	}
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('usuario Inválida', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			if ($this->Usuario->save($this->data)) {
				$this->Session->setFlash(__('Datos editados exitosamente.', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('Datos no editados. Por favor, intente de nuevo.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Usuario->read(null, $id);
		}
		$personas = $this->Usuario->Persona->find('list', array('fields' => array('Persona.id', 'Persona.nombre')));
		$roles = $this->Usuario->Rol->find('list', array('fields' => array('Rol.id', 'Rol.nombre')));
		$this->set(compact('personas', 'roles'));
	}

	function delete($id = null) {
		if (array_key_exists('cancelar', $this->params['form'])) {
        	$this->Session->setFlash('Operación cancelada, ningún dato fue borrado.');
        	$this->redirect(array('action' => 'index'));
    	}
		if (!$id) {
			$this->Session->setFlash(__('Id Inválida para usuario', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Usuario->delete($id)) {
			$this->Session->setFlash(__('Datos borrados exitosamente', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('Usuario no fue borrado.', true));
		$this->redirect(array('action' => 'index'));
	}

}
?>